// 封装分类数据业务相关代码
import { ref, onMounted } from 'vue'
import { useRoute } from 'vue-router'
import { onBeforeRouteUpdate } from 'vue-router'
import { findCategoryAPI } from '@/apis/category.js'

export function useCategory() {
  const categoryDate = ref({})
  const route = useRoute() // useRoute 获取路由参数
  // 定义请求函数
  const getCategory = async (id = route.params.id) => {
    const res = await findCategoryAPI(id)
    categoryDate.value = res.result
    // console.log('分类信息',res)
  }
  // 生命周期函数
  onMounted(() => getCategory())
  
  // 目标：路由参数变化的时候可以把分类数据接口重新发送
  onBeforeRouteUpdate((to) => {
    // 存在问题：使用最新的路由参数请求最新的分类数据
    getCategory(to.params.id)
  })
  
  // Category的数据以对象的形式return出去 给外面解构赋值
  return {
    categoryDate
  }
}